package com.zretc.dynamic.test;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

import com.zretc.entity.MovieStar;

/**
 * 动态代理类
 * 
 * @author admin
 *
 */
public class DynamicProxy implements InvocationHandler {

	//我们这个类是动态代理类，要代理的是谁？
	//Object就可以代理任何对象 .例如:MovieStar,Singer
	private Object obj;
	
	@Override
	public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
		// TODO Auto-generated method stub
		// 我们要代理对象的哪个方法呢？
		System.out.println("method :"+method.getName()+" begin"+System.currentTimeMillis());
		//invoke 调用的究竟是谁？ playmovie 也可能是 sing  playball等
		Object result = method.invoke(obj, args);
		System.out.println("method :"+method.getName()+" end"+System.currentTimeMillis());
		return result;
	}

	/**
	 * @return the obj
	 */
	public Object getObj() {
		return obj;
	}

	/**
	 * @param obj the obj to set
	 */
	public void setObj(Object obj) {
		this.obj = obj;
	}

	

}
